# 定时器
# setTimeout
采用
setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[])
在 millisec 毫秒后只执行一次函数或代码串
推荐传递函数或者函数的引用
不推荐代码串,因为会涉及欺骗词法作用域,造成 JS 引擎认为该内容视为好像在书写时(词法期)就存在于程序中这个位置的代码,且性能下降
clearTimeout():清除setTimeout设置的定时器
// var id = setTimeout("alert('abc');", 1000); // 不推荐
// 返回的 timer 是定时器的顺序,如1,2,3
var timer = setTimeout(() => {
console.log(666);
}, 1000);
# setInterval
setInterval(code,millisec)
每隔 millisec 毫秒执行一次函数或代码串
推荐传递函数或者函数的引用
不推荐代码串,因为会涉及欺骗词法作用域,造成 JS 引擎认为该内容视为好像在书写时(词法期)就存在于程序中这个位置的代码,且性能下降
clearInterval():清除setInterval设置的定时器
// var id = setTimeout("alert('abc');", 1000); // 不推荐
// 返回的 timer 是定时器的顺序,如1,2,3
var timer = setInterval(() => {
console.log(666);
}, 1000);
// 清除定时器
setTimeout(() => {
clearInterval(timer);
}, 5000);